#include <dt-bindings/clock/qcom,audio-ext-clk.h>
#include "msm-audio-lpass.dtsi"

&msm_audio_ion {
	iommus = <&apps_smmu 0x01c1 0x0>;
	qcom,smmu-sid-mask = /bits/ 64 <0xf>;
};

&audio_apr {
	q6core: qcom,q6core-audio {
		compatible = "qcom,q6core-audio";

		lpass_audio_hw_vote: vote_lpass_audio_hw {
			compatible = "qcom,audio-ref-clk";
			qcom,codec-ext-clk-src = <AUDIO_LPASS_AUDIO_HW_VOTE>;
			#clock-cells = <1>;
		};

	};
};

#include "scuba-lpi.dtsi"

&q6core {
	cdc_dmic01_gpios: cdc_dmic01_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_dmic01_clk_active &cdc_dmic01_data_active>;
		pinctrl-1 = <&cdc_dmic01_clk_sleep &cdc_dmic01_data_sleep>;
		qcom,lpi-gpios;
	};

	cdc_dmic23_gpios: cdc_dmic23_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_dmic23_clk_active &cdc_dmic23_data_active>;
		pinctrl-1 = <&cdc_dmic23_clk_sleep &cdc_dmic23_data_sleep>;
		qcom,lpi-gpios;
	};

	rx_swr_gpios: rx_swr_clk_data_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&rx_swr_clk_active &rx_swr_data_active
				&rx_swr_data1_active>;
		pinctrl-1 = <&rx_swr_clk_sleep &rx_swr_data_sleep
				&rx_swr_data1_sleep>;
		qcom,lpi-gpios;
	};

	va_swr_gpios: va_swr_clk_data_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&tx_swr_clk_active &tx_swr_data1_active
			    &tx_swr_data2_active>;
		pinctrl-1 = <&tx_swr_clk_sleep &tx_swr_data1_sleep
			    &tx_swr_data2_sleep>;
		qcom,lpi-gpios;
		qcom,chip-wakeup-reg = <0x003ca064>;
		qcom,chip-wakeup-maskbit = <0>;
		qcom,chip-wakeup-default-val = <0x1>;
	};

	wsa881x_analog_clk_gpio: msm_cdc_pinctrl@18 {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&wsa_mclk_active>;
		pinctrl-1 = <&wsa_mclk_sleep>;
		qcom,lpi-gpios;
	};
};

&q6core {
	bolero: bolero-cdc {
		compatible = "qcom,bolero-codec";
		clock-names = "lpass_audio_hw_vote";
		clocks = <&lpass_audio_hw_vote 0>;
		bolero-clk-rsc-mngr {
			compatible = "qcom,bolero-clk-rsc-mngr";
		};

		va_macro: va-macro@0a730000 {
			swr0: va_swr_master {
			};
		};

		rx_macro: rx-macro@0a600000 {
			swr1: rx_swr_master {
			};
		};
	};
};

&q6core {
	scuba_snd: sound {
		compatible = "qcom,bengal-asoc-snd";
		qcom,mi2s-audio-intf = <0>;
		qcom,auxpcm-audio-intf = <0>;
		qcom,tdm-audio-intf = <0>;
		qcom,wcn-btfm = <0>;
		qcom,afe-rxtx-lb = <0>;

		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
				<&loopback>, <&compress>, <&hostless>,
				<&afe>, <&lsm>, <&routing>, <&compr>,
				<&pcm_noirq>;
		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
				"msm-pcm-dsp.2", "msm-voip-dsp",
				"msm-pcm-voice", "msm-pcm-loopback",
				"msm-compress-dsp", "msm-pcm-hostless",
				"msm-pcm-afe", "msm-lsm-client",
				"msm-pcm-routing", "msm-compr-dsp",
				"msm-pcm-dsp-noirq";
		asoc-cpu = <&dai_mi2s0>, <&dai_mi2s1>,
				<&dai_mi2s2>, <&dai_mi2s3>,
				<&dai_pri_auxpcm>,
				<&dai_sec_auxpcm>, <&dai_tert_auxpcm>,
				<&dai_quat_auxpcm>,
				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
				<&afe_proxy_tx>, <&incall_record_rx>,
				<&incall_record_tx>, <&incall_music_rx>,
				<&incall_music_2_rx>,
				<&proxy_rx>, <&proxy_tx>,
				<&usb_audio_rx>, <&usb_audio_tx>,
				<&sb_7_rx>, <&sb_7_tx>, <&sb_8_tx>,
				<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
				<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
				<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_tx_0>,
				<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_tx_0>,
				<&va_cdc_dma_0_tx>, <&va_cdc_dma_1_tx>,
				<&va_cdc_dma_2_tx>,
				<&rx_cdc_dma_0_rx>, <&tx_cdc_dma_0_tx>,
				<&rx_cdc_dma_1_rx>, <&tx_cdc_dma_1_tx>,
				<&rx_cdc_dma_2_rx>, <&tx_cdc_dma_2_tx>,
				<&rx_cdc_dma_3_rx>, <&tx_cdc_dma_3_tx>,
				<&rx_cdc_dma_4_rx>, <&tx_cdc_dma_4_tx>,
				<&rx_cdc_dma_5_rx>, <&tx_cdc_dma_5_tx>,
				<&rx_cdc_dma_6_rx>, <&rx_cdc_dma_7_rx>,
				<&afe_loopback_tx>;
		asoc-cpu-names = "msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
				"msm-dai-q6-auxpcm.1",
				"msm-dai-q6-auxpcm.2", "msm-dai-q6-auxpcm.3",
				"msm-dai-q6-auxpcm.4", "msm-dai-q6-dev.224",
				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
				"msm-dai-q6-dev.32770",
				"msm-dai-q6-dev.8194", "msm-dai-q6-dev.8195",
				"msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673",
				"msm-dai-q6-dev.16398", "msm-dai-q6-dev.16399",
				"msm-dai-q6-dev.16401",
				"msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865",
				"msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881",
				"msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36897",
				"msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36913",
				"msm-dai-cdc-dma-dev.45089",
				"msm-dai-cdc-dma-dev.45091",
				"msm-dai-cdc-dma-dev.45093",
				"msm-dai-cdc-dma-dev.45104",
				"msm-dai-cdc-dma-dev.45105",
				"msm-dai-cdc-dma-dev.45106",
				"msm-dai-cdc-dma-dev.45107",
				"msm-dai-cdc-dma-dev.45108",
				"msm-dai-cdc-dma-dev.45109",
				"msm-dai-cdc-dma-dev.45110",
				"msm-dai-cdc-dma-dev.45111",
				"msm-dai-cdc-dma-dev.45112",
				"msm-dai-cdc-dma-dev.45113",
				"msm-dai-cdc-dma-dev.45114",
				"msm-dai-cdc-dma-dev.45115",
				"msm-dai-cdc-dma-dev.45116",
				"msm-dai-cdc-dma-dev.45118",
				"msm-dai-q6-dev.24577";
		fsa4480-i2c-handle = <&fsa4480>;
	};
};

&qupv3_se1_i2c {
	status = "ok";
	fsa4480: fsa4480@42 {
		compatible = "qcom,fsa4480-i2c";
		reg = <0x42>;
	};
};
